package kr.co.boogui.service;

import java.io.File;
import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;

import kr.co.boogui.dao.NewsDAO;
import kr.co.boogui.model.NewsVO;

import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;

public class NewsRegistryService {

	// 뉴스 등록 (form 값 입력)
	public static boolean newsFrmRegistry(MultipartRequest mreq)
			throws ServletException, IOException {
		boolean result = false;
		NewsVO nov = new NewsVO();
		nov.setNewstit(mreq.getParameter("newstit"));
		nov.setNewscontents(mreq.getParameter("newscontents"));
		nov.setNewstype(Integer.parseInt(mreq.getParameter("newstype")));
		nov.setWriter(mreq.getParameter("writer"));
		if (NewsDAO.writeNews(nov)) {
			result = true;
		} else {
			result = false;
		}
		return result;
	}

	// 파일명
	public static String renameFile() {
		return NewsDAO.readNewsno();
	}

	// 영화 등록 (파일, 정보)
	public static boolean newsRegistry(HttpServletRequest req) throws Exception {
		boolean result = false;

		String fpath = "d:/CDN/boogui/news/";
		int size = 1024 * 1024 * 5;
		try {
			MultipartRequest mreq = new MultipartRequest(req, fpath, size,
					"UTF-8", new DefaultFileRenamePolicy());
			Enumeration formNames = mreq.getFileNames(); // 폼의 이름 반환
			String formName = (String) formNames.nextElement(); // 자료가 많을 경우엔
																// while 문을 사용
			String fileName = mreq.getFilesystemName(formName); // 파일의 이름 얻기
			if (fileName == null) { // 파일이 업로드 되지 않았을때
				System.out.println("fail");
			} else { // 파일이 업로드 되었을때
				if (newsFrmRegistry(mreq)) {
					result = true;
					String fname = renameFile();
					File oldFile = new File(fpath + fileName);
					File file = new File(fpath + fname + ".jpg");
					oldFile.renameTo(file);
				}
			} // end if
		} catch (Exception e) {
			e.printStackTrace();
		}

		return result;
	}
}
